package com.it.a04mytreemap;

import java.util.StringJoiner;
import java.util.TreeMap;
import java.util.function.BiConsumer;

public class A02_TreeMapDemo2 {
    public static void main(String[] args) {
    /*
    需求：
        字符串“aababcabcdabcde”
        请统计字符串中每一个字符出现的次数，并按照以下格式输出输出结果：
        a(5)b(4) c(3)d(2)e(1)
        新的统计思想：利用map集合进行统计
        如果题目中没有要求对结果进行排序，默认使用HashMap如果题目中要求对结果进行排序，请使用TreeMap
        键：表示要统计的内容
        值：表示次数
     */

        //1.定义一个字符串
        String s = "aaccddhhsskkddc";

        //创建集合
        TreeMap<Character,Integer> tm = new TreeMap<>();

        //2.遍历字符串得到里面的每一个字符
        for(int i = 0;i < s.length();i++){
            char ch = s.charAt(i);
            //将字符存到集合里面
            //判断是否重复
            if(tm.containsKey(ch)){
                int count = tm.get(ch);
                count++;
                tm.put(ch,count);
            }else{
                tm.put(ch,1);
            }
        }

        //4.遍历集合，并按照指定的格式进行拼接
        //StringBuilder sb = new StringBuilder();
        //tm.forEach(( key,  value)-> sb.append(key).append("(").append(value).append(")").append(","));

        StringJoiner sj = new StringJoiner("","","");
        tm.forEach(( key,  value)-> sj.add(key+"").add("(").add(value+"").add(")").add(","));
        System.out.println(sj.toString());
    }
}
